可以直接轉換該行程式後,我就想說是否一次轉一個方法。接下來只有每個方法都複製過來,按執行,就可以將程式寫完了。
(但內心其實也有想說一次轉一個檔案,但尤於以前沒有轉過,而且我來這個專案只有三天,和別人說自已有寫轉檔的小程式,並沒有被認同。所以不敢給自已下這個目標。所以我先階低梯度,先切分成一個一個方法來轉。)
在這個方法中SUBNO是ID的名稱,Validate為欄位檢核。有Validate的方法都會對應到Html的某個屬性。
/**
*
*科目代號變動判定
*
*/
public function reactToSUBNO$Validate(event:ValidationEvent):void
{
.....
}
第一部份:以方法做一個單位去轉檔案,要思考的點
1.就是程式要知道那一行是一個方法
2.比較出是那一個方法
3.取出id
4.替換出現在程式的格式
而在這個專案中
舊:public function reactToSUBNO$Validate(event:ValidationEvent):void
新:validateSUBNO()
要將舊的資料轉成新的資料,
1.我判斷function來確認是否是方法。
2.判斷是Validate,
3.透過indexOf()的方法取出SUBNO,
4.將validate+SUBNO()取代舊有的資料。即可。
於是會轉成以下的格式
/**
* 科目代號變動判定
*/
validateSUBNO(event: CustomEvent)
{
....
}
第二部份:
因為validate的方法是由html呼叫,所以我先寫好呼叫的方法,讓程序員可以直接複製內容貼到Html裡。
//(systexValidate)="validateSUBNO($event)"
第三部份:
優化畫面,減少不必要的東西,在方法的註釋中我不需要太多的號,所以我就該行只行一個號的資料也刪除掉。
最後輸出如下:
/**
* 科目代號變動判定
*/
//(systexValidate)="validateSUBNO($event)"
validateSUBNO(event: CustomEvent)
{
....
}
程式碼如下:
if (str.indexOf("Validate") >= 0) {
int index0 = str.indexOf("reactTo");
int index1 = str.indexOf("$");
if (index0 > 0 && index1 > 0) {
str = "//(systexValidate)=\"validate" + str.substring(index0 + 7, index1) + "($event)\"\n" + "validate"+ str.substring(index0 + 7, index1) + "(event: CustomEvent)";
}
}
結合前一篇文章,這樣就把一個方法的內容連同註解都翻譯好了。
寫完隔天,我分享我的程式給我們組的組長,我們組長看了我的程式,和我說:「這我也會。然後就不太理我。」
其實我覺得我寫了一個不錯的程式,我分享給幾個同組的人,但沒有人說:「棒棒」
但這沒有影響我繼續優化。